#include "alarm.h"
#include <8052.h>

uint8_t alarm_flag;

void alarm_loop() {
    static uint8_t loopcnt=0; // 调用计数器
    if (alarm_flag) {
        //哔哔哔---哔哔哔---
        switch ((loopcnt>>2)&0x07) {
            case 0:
            case 2:
            case 4:
                // 开蜂鸣器
                P2 = (P2 & 0x1f) | (5<<5);
                P0_6 = 1;
                P0_4 = 0; // 继电器很烦人
                P2 &= 0x1f;
                break;
            default:
                // 关蜂鸣器
                P2 = (P2 & 0x1f) | (5<<5);
                P0_6 = 0;
                P0_4 = 0; // 继电器很烦人
                P2 &= 0x1f;
        }
        ++loopcnt;
    } else {
        // 关蜂鸣器
        P2 = (P2 & 0x1f) | (5<<5);
        P0_6 = 0;
        P0_4 = 0; // 继电器很烦人
        P2 &= 0x1f;
        // 下次报警从第一声哔开始
        loopcnt = 0;
    }
}
